import router from "@/router";
import nprogress from "nprogress";
import "nprogress/nprogress.css";
import setting from "./declareSetting";
import useUserStore from "@/store/modules/user";
import { ElMessage } from "element-plus";
import pinia from "./store";

let timer: any = null;
const userStore = useUserStore(pinia);
// 前置守卫
router.beforeEach((to, from, next) => {
  document.title = `${setting.title} - ${to.meta.title}`;
  nprogress.start();
  if (localStorage.getItem("token")) {
    // 如果存在token，表示用户已登录
    if (to.path === "/login") {
      // 如果用户已登录，但尝试访问登录页，重定向到首页
      next({ path: "/home" });
    } else if (userStore.status === 1) {
      // 如果用户已登录，且不是访问登录页，继续导航
      ElMessage.error("您的账号已冻结，请联系管理员进行解冻");
      timer = setTimeout(() => {
        localStorage.removeItem("token");
        localStorage.removeItem("account");
        next({ path: "/login" });
        location.reload();
      }, 1000);
    } else {
      clearTimeout(timer);
      next();
    }
  } else {
    // 如果不存在token，表示用户未登录
    if (to.path !== "/login") {
      // 如果用户未登录，但尝试访问首页和其他页，重定向到登录页
      clearTimeout(timer);
      next({ path: "/login" });
    } else {
      // 如果用户未登录，且不是访问首页，继续导航
      clearTimeout(timer);
      next();
    }
  }
});

// 全局后置守卫
router.afterEach((to, from) => {
  nprogress.done();
  //   clearInterval(timer)
});
